/***************************************************************************
创建者：朱志平
 开始时间：               : 2016.12.02
 copyright            : (C) 同川科技
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   更新程序、恢复出厂设置视窗
*                                                                         *
 ***************************************************************************/
#ifndef UPDATEPROGRAMVIEW_H
#define UPDATEPROGRAMVIEW_H

#include "updateprogramview_global.h"
#include <QWidget>
#include <QMessageBox>
#include <QFileInfo>
#include <QFileDialog>

namespace Ui {
class UpdateProgramView;
}

/**
 * @brief The UpdateProgramView class　更新程序、恢复出厂设置视窗类
 */
class UPDATEPROGRAMVIEWSHARED_EXPORT UpdateProgramView : public QWidget
{
    Q_OBJECT

public:
    UpdateProgramView(QWidget *parent = 0);

    /**
     * @brief updateView　更新设置数据到界面控件
     */
    void updateView();

    /**
     * @brief returnMessage　接收设置返回信息
     * @param message　设置返回信息
     */
    void returnMessage(QString message);

public:
    /**
     * @brief uDiskLocation　浏览路径
     */
    QString uDiskLocation;
    /**
     * @brief hmiProgram 示教器程序
     */
    QString hmiProgram;
    /**
     * @brief controllerProgram　控制器程序
     */
    QString controllerProgram;

signals:
    /**
     * @brief updateHmiProgram　更新示教器程序
     * @param hmiProgram　示教器程序
     */
    void updateHmiProgram(QString hmiProgram);

    /**
     * @brief updateControllerProgram　更新控制器程序
     * @param controllerProgram　控制器程序
     */
    void updateControllerProgram(QString controllerProgram);

    /**
     * @brief restoreHmiFactoryProgram　恢复示教器程序出厂状态
     */
    void restoreHmiFactoryProgram();

    /**
     * @brief restoreControllerFactoryProgram　恢复控制器程序出厂状态
     */
    void restoreControllerFactoryProgram();

private slots:
    /**
     * @brief on_browseHmi_Btn_clicked　浏览示教器程序槽函数
     */
    void on_browseHmi_Btn_clicked();

    /**
     * @brief on_browseCont_Btn_clicked　浏览控制器程序槽函数
     */
    void on_browseCont_Btn_clicked();

    /**
     * @brief on_updateHmi_Btn_clicked　更新示教器程序槽函数
     */
    void on_updateHmi_Btn_clicked();

    /**
     * @brief on_updateCont_Btn_clicked　更新控制器程序槽函数
     */
    void on_updateCont_Btn_clicked();

    /**
     * @brief on_restoreHmi_Btn_clicked　恢复示教器程序出厂状态槽函数
     */
    void on_restoreHmi_Btn_clicked();

    /**
     * @brief on_restoreController_Btn_clicked　恢复控制器程序出厂状态槽函数
     */
    void on_restoreController_Btn_clicked();

private:
    Ui::UpdateProgramView *ui;
};

#endif // UPDATEPROGRAMVIEW_H
